﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
using System.Data.Objects;

namespace SCEM.DTO
{
    [DataContract]
    public class TipoFisioterapiaDTO : IDTO<TipoFisioterapia>
    {

        [DataMember]
        public string Id { get; set; }

        [DataMember]
        public string Nome { get; set; }

        [DataMember]
        public string Descricao { get; set; }

        [DataMember]
        public DateTime DataCadastro { get; set; }

        /// <summary>
        /// Construtor para conversão da entidade TipoFisioterapia em DTO.
        /// </summary>
        /// <param name="entidade">A entidade a ser usada como base.</param>
        public TipoFisioterapiaDTO(TipoFisioterapia entidade)
        {
            Id = entidade.Id.ToString();
            Nome = entidade.Nome;
            Descricao = entidade.Descricao;
            DataCadastro = entidade.DataCadastro;
        }

        public TipoFisioterapia ConvertToEntity(ObjectContext context)
        {
            TipoFisioterapia tipoFisioterapia = new TipoFisioterapia();
            SCEMContainer scemContext = (SCEMContainer)context;
            Guid guid;
            if (!String.IsNullOrEmpty(Id) && Guid.TryParse(Id, out guid))
            {
                var queryProduto = from tf in scemContext.TiposFisioterapia
                                   where tf.Id == guid
                                   select tf;
                if (queryProduto.Count() == 1)
                    tipoFisioterapia = queryProduto.First();
            }

            if (tipoFisioterapia.Id == Guid.Empty || tipoFisioterapia.DataCadastro == DateTime.MinValue)
            {
                tipoFisioterapia.Id = Guid.NewGuid();
                tipoFisioterapia.DataCadastro = DateTime.Now;
            }

            tipoFisioterapia.Descricao = Descricao;
            tipoFisioterapia.Nome = Nome;

            return tipoFisioterapia;
        }
    }
}
